﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace _46Directory类操作目录
{
    internal class Program
    {
        private static void Main1(string[] args)
        {
            //创建,会自动创建中间文件夹
            Directory.CreateDirectory(@"D:\Test\A\B");
        }
        //删除
        private static void Main2(string[] args)
        {
            //删除非空文件夹需要第二个参数位true
            Directory.Delete(@"D:\Test", true);
        }
        //是否存在
        private static void Main3(string[] args)
        {
            Console.WriteLine(Directory.Exists(@"D:\Tencent"));
        }
        //获取文件夹下的所有文件
        private static void Main4(string[] args)
        {
            string dir = @"E:\_JuLianHuTong\untiy-teach2020\03.Csharp";
            //第二个参数给通配符可以筛选文件,不给则获取所有文件路径,第三个参数可以选择是否包含子文件夹
            string[] files = Directory.GetFiles(dir, "*.md", SearchOption.AllDirectories);
            foreach (var item in files)
            {
                Console.WriteLine(item);
            }
        }
        //获取文件夹下的所有子目录
        private static void Main5(string[] args)
        {
            string dir = @"E:\_JuLianHuTong\untiy-teach2020\03.Csharp";
            string[] subDirs = Directory.GetDirectories(dir);//通过第二三个参数,支持通配符和子目录
            foreach (var item in subDirs)
            {
                Console.WriteLine(item);
            }
        }
        //获取和设置工作目录,工作目录的作用是可以使用相对路径
        private static void Main6(string[] args)
        {
            Console.WriteLine(Directory.GetCurrentDirectory());
            Console.WriteLine(File.Exists("五经.txt"));//false

            Directory.SetCurrentDirectory(@"D:\");

            Console.WriteLine(Directory.GetCurrentDirectory());
            Console.WriteLine(File.Exists("五经.txt"));//true
        }
        //移动(改名) ,不能跨驱动器移动   //File类也有Move方法
        private static void Main7(string[] args)
        {
            Directory.Move(@"D:\AB2", @"D:\AA\AB2");
        }
        //获取电脑上的盘符信息
        private static void Main(string[] args)
        {
            string[] drives = Directory.GetLogicalDrives();
            foreach (var item in drives)
            {
                Console.WriteLine(item);
            }
        }
    }
}